package com.mfl.controller.user;

import com.mfl.common.PageResult;
import com.mfl.common.Result;
import com.mfl.pojo.dto.PostDTO;
import com.mfl.pojo.dto.PostPageQueryDTO;
import com.mfl.pojo.vo.PostVO;
import com.mfl.service.PostService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController("userPostController")
@RequestMapping("/cky/user/post")
@Slf4j
public class PostController {

    @Autowired
    private PostService postService;

    /**
     * 新增帖子
     * @param postDTO
     * @return
     */
    @PostMapping("/insert")
    public Result insert(@RequestBody PostDTO postDTO){
        log.info("新增帖子：{}", postDTO);
        postService.insert(postDTO);
        return Result.success("新增成功");
    }

    /**
     * 查询最近帖子
     * @return
     */
    @GetMapping("/queryLatelyPost")
    public Result<PageResult> queryLatelyPost(PostPageQueryDTO postPageQueryDTO){
        log.info("查询最近帖子：{}", postPageQueryDTO);
        PageResult pageResult = postService.queryLatelyPost(postPageQueryDTO);
        return Result.success("", pageResult);
    }

    /**
     * 查询三天前帖子
     * @param pageQueryDTO
     * @return
     */
    @GetMapping("/queryThreeDaysAgoPost")
    public Result<PageResult> queryThreeDaysAgoPost(PostPageQueryDTO pageQueryDTO){
        log.info("查询三天前帖子：{}", pageQueryDTO);
        PageResult pageResult = postService.queryThreeDaysAgoPost(pageQueryDTO);
        return Result.success("", pageResult);
    }

    /**
     * 查询帖子详情
     * @param id
     * @return
     */
    @GetMapping("/getPostById")
    public Result<PostVO> getPostById(int id){
        log.info("查询帖子：{}", id);
        PostVO postVO = postService.getPostById(id);
        return Result.success("", postVO);
    }

    /**
     * 查询用户帖子
     * @param postPageQueryDTO
     * @return
     */
    @GetMapping("/pageQueryUserPost")
    public Result<PageResult> pageQueryUserPost(PostPageQueryDTO postPageQueryDTO){
        log.info("查询用户帖子：{}", postPageQueryDTO);
        PageResult pageResult = postService.pageQueryUserPost(postPageQueryDTO);
        return Result.success("", pageResult);
    }
}
